1. Field of the Invention
The present invention is generally directed to synchronization between clients and servers in a computing environment.
2. Background Art
FIG. 1 illustrates a computing environment 102 that includes a server 104 and a client 106 (in practice, a plurality of servers 104 and clients 106 may operate in the computing environment 102). From time to time, client 106 synchronizes its state (data, applications, etc.) with server 104.
For example, according to the AVANTGO service (www.avantgo.com) available from iAnywhere Solutions, Inc., a Sybase company, client 106 receives content from one or more web sites 108 when it syncs with server 104. More particularly, server 104 retrieves data from web sites 108 corresponding to channels to which client 106 is subscribed. During a sync operation, server 104 transfers such data to client 106 via the Internet 110.
It is not unusual for the sync to be interrupted before all the data has been successfully received by the client 106. An interruption may result from any number of reasons, such as but not limited to issues with the server 104, issues with the client 106, and/or issues with the connection between the server 104 and client 106. For example, where the client 106 is in communication with the Internet 110 (and thus the server 104) via a wireless link, the sync will be interrupted if the wireless link fails or becomes unavailable.
Conventionally, interrupted syncs are re-started from the beginning. This requires that the server 104 re-transmit all the data to the client 106, even data that client 106 had successfully received prior to interruption of the sync. This approach is greatly inefficient, as such unnecessary re-transmission of data is a burden on server, client and network resources.
Accordingly, what is needed is an improved approach for handling interrupted syncs between clients and servers.